🤖 Merge 'main' => 'xcode26.6'#25664
Draft
github-actions[bot] wants to merge 129 commits into
Draft
Conversation
…1: Build ID 14077114 (#25406) This is the pull request automatically created by the OneLocBuild task in the build process to check-in localized files generated based upon translation source files (.lcl files) handed-back from the downstream localization pipeline. If there are issues in translations, visit https://aka.ms/icxLocBug and log bugs for fixes. The OneLocBuild wiki is https://aka.ms/onelocbuild and the localization process in general is documented at https://aka.ms/AllAboutLoc.
Code Radiator failed on `main` scheduled execution because safe outputs
assumed PR-trigger context and rejected dynamic base overrides. This updates
workflow constraints so scheduled runs can safely update existing merge PRs
and create new ones across target branches.
- **Safe output policy updates**
- Enabled per-run PR base override for expected branch families:
- `safe-outputs.create-pull-request.allowed-base-branches: ["net*.0", "xcode*"]`
- Switched PR-branch push targeting from implicit triggering PR to explicit any-PR mode:
- `safe-outputs.push-to-pull-request-branch.target: "*"`
- Added push guardrail to restrict eligible PRs:
- `safe-outputs.push-to-pull-request-branch.title-prefix: "🤖 Merge 'main' => '"`
- **Checkout behavior aligned to safe-output targeting**
- Added wildcard ref fetch config required for `target: "*"` PR-branch pushes:
- `checkout.fetch: ["*"]`
- `checkout.fetch-depth: 0`
- **Compiled workflow artifact refresh**
- Regenerated `.github/workflows/code-radiator.lock.yml` from updated source workflow frontmatter.
```yaml
checkout:
fetch: ["*"]
fetch-depth: 0
safe-outputs:
create-pull-request:
max: 10
allowed-base-branches:
- "net*.0"
- "xcode*"
push-to-pull-request-branch:
max: 10
target: "*"
title-prefix: "🤖 Merge 'main' => '"
```
---------
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… TestNSurlSessionHandlerCookieContainerSetCookie (#25420) - [x] Fix `TestNSurlSessionHandlerCookieContainerSetCookie` to treat missing expected cookie as transient network failure (ignore in CI) - [x] Address race condition: move `CookieContainer` inspection after `!completed` guard to avoid concurrent access - [x] Address exception masking: separate `!completed` and `!hasExpectedCookie` CI-ignore guards so real exceptions still fail the test Fixes #25385. --------- Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
…5373. (#25399) Use a ConditionalWeakTable to store the additional native memory we need for each NSObject. A bit of testing seems to indicate entries aren't removed from ConditionalWeakTable until they're deallocated (or at the very least can't be resurrected), however a value in the ConditionalWeakTable are *finalized* as soon as the corresponding key is finalizable, which means we need to do some shenanigans to make it work: * We create a class to store the native memory we want to use. * We create one instance of this class for each NSObject instance, and add it to a static ConditionalWeakTable. * In this class' finalizer we free the native memory, but only if the NSObject has been garbage collected. * We determine whether the NSObject has been garbage collected by creating a weak resurrection-tracking GCHandle to the NSObject, and if we determine the NSObject hasn't been garbage collected, we re-schedule the finalizer. This hopefully fixes #25373, where for some reason (I wasn't able to reproduce the problem unfortunately), live NSObject instances ended up with a null pointer for the additional native memory. Fixes #25373.
…20260508175345648 to main (#25377) LEGO: Pull request from lego/hb_5df43909-4a19-4f55-bc3f-9ea8fccf3c82_20260508175345648 to main with localized lcls
Add @media (prefers-color-scheme: dark) rules to xharness.css with dark background, light text, and appropriate link/nav colors. Replace hardcoded 'black' color values with 'currentcolor' so text remains visible in both light and dark modes. Use CSS system color 'Canvas' for nav dropdown background instead of hardcoded #ffffff. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
#25415) When a method has generic parameter types (like 'T' in Callback<T>), the linker XML descriptor can't resolve the generic parameter name in the method signature. Use the method 'name' attribute instead of 'signature' for such methods, which matches by name and avoids the IL2009 warning. Fixes this warning, which shows up in MAUI's tests (and our own too, just not in a place where we were validating warnings): > warning IL2009: Could not find method 'System.Void Activated(T)' on type 'UIKit.UIGestureRecognizer.Callback`1' --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…20260513055157079 to main (#25414) LEGO: Pull request from lego/hb_5df43909-4a19-4f55-bc3f-9ea8fccf3c82_20260513055157079 to main with localized lcls
…in cookie handler tests (#25419) `TestNSUrlSessionHandlerCookies` and `TestNSUrlSessionEphemeralHandlerCookies` were flaky across unrelated PRs because the CI-ignore guard only checked whether `Set-Cookie` headers were *present*, not whether they contained the expected value. When `httpbin.org` transiently returns a different cookie (e.g. from a CDN/load balancer), `managedCookieResult` is `true` but the value assertion fails — escaping the guard entirely. ## Changes - **`tests/monotouch-test/System.Net.Http/MessageHandlers.cs`** — In `TestNSUrlSessionHandlerCookiesImpl`, pre-compute `managedHasExpectedCookie` / `nativeHasExpectedCookie` after the async block and fold them into the `IgnoreInCI` condition alongside the existing presence checks: ```csharp // Before: only guarded on header presence if (!completed || !managedCookieResult || !nativeCookieResult) TestRuntime.IgnoreInCI ("Transient network failure - ignore in CI"); // After: also guard on expected cookie value var managedHasExpectedCookie = managedCookies?.Any (v => v.StartsWith ("cookie=chocolate-chip;", StringComparison.Ordinal)) == true; var nativeHasExpectedCookie = nativeCookies?.Any (v => v.StartsWith ("cookie=chocolate-chip;", StringComparison.Ordinal)) == true; if (!completed || !managedCookieResult || !nativeCookieResult || !managedHasExpectedCookie || !nativeHasExpectedCookie) TestRuntime.IgnoreInCI ("Transient network failure - ignore in CI"); ``` The downstream assertions reuse the pre-computed booleans, keeping local runs semantically identical. --------- Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
…ithin Visual Studio. (#25417) Keep using the desktop MSBuild assemblies when building from within Visual Studio, while we track down why it's not working and fix it for a future release. Ref: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2968169 Ref: #25418 Backport of #25249.
…20260513174343331 to main (#25423) LEGO: Pull request from lego/hb_5df43909-4a19-4f55-bc3f-9ea8fccf3c82_20260513174343331 to main with localized lcls
…20260514054804289 to main (#25425) LEGO: Pull request from lego/hb_5df43909-4a19-4f55-bc3f-9ea8fccf3c82_20260514054804289 to main with localized lcls
) Code Radiator failed when attempting to emit `create_pull_request` for `xcode26.5` because safe outputs only allowed `xcode[0-9]*` (no dotted minor form). This updates the workflow policy so existing branch selection rules and safe-output enforcement are aligned. - **Safe-output base branch policy** - Added dotted Xcode branch support to `create-pull-request.allowed-base-branches` in `.github/workflows/code-radiator.md`. - New allowed pattern: `xcode[0-9]*.[0-9]*`. - **Compiled workflow lock update** - Regenerated `.github/workflows/code-radiator.lock.yml` so runtime safe-output config includes the new pattern. - **Resulting policy shape** - Supports both major and minor Xcode branch naming: - `xcode26` - `xcode26.5` ```yaml safe-outputs: create-pull-request: allowed-base-branches: - "net[0-9]*.0" - "xcode[0-9]*" - "xcode[0-9]*.[0-9]*" ``` --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com> Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
This pull request updates the following dependencies ## From https://github.com/dotnet/xharness - **Subscription**: [02e03784-16b3-4ced-b02a-3715797fc7da](https://maestro.dot.net/subscriptions?search=02e03784-16b3-4ced-b02a-3715797fc7da) - **Build**: [20260514.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2974748) ([314304](https://maestro.dot.net/channel/2/github:dotnet:xharness/build/314304)) - **Date Produced**: May 14, 2026 9:16:56 AM UTC - **Commit**: [51ca379106cfd749a498cb0822210ef1aa926e41](dotnet/xharness@51ca379) - **Branch**: [main](https://github.com/dotnet/xharness/tree/main) - **Dependency Updates**: - From [11.0.0-prerelease.26230.4 to 11.0.0-prerelease.26264.1][1] - Microsoft.DotNet.XHarness.iOS.Shared [1]: dotnet/xharness@92962e5...51ca379
Convert classic NUnit assertions (`Assert.AreEqual`, `Assert.IsTrue`, `Assert.IsNotNull`, etc.) to NUnit v4's constraint-based `Assert.That` syntax in the msbuild test projects. Also update package references to use centralized version properties from `Directory.Build.props`: - `NUnit` → `$(NUnitPackageVersion)` - `NUnit3TestAdapter` → `$(NUnit3TestAdapterPackageVersion)` - `Microsoft.NET.Test.Sdk` → `$(MicrosoftNETTestSdkPackageVersion)` Two shared files (`tests/common/DotNet.cs`, `tests/common/mac/ProjectTestHelpers.cs`) are also converted — the `Assert.That` constraint syntax is compatible with both NUnit 3 and 4, so other projects referencing these files are unaffected. All `tests-msbuild` tests pass (495 passed, 0 failed). 🤖 Pull request created by Copilot --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
## Summary Introduces a stack-allocated `ObjCSuper` struct to replace the use of `NSObject.SuperHandle` for `objc_msgSendSuper` calls. This eliminates the need to allocate and manage unmanaged memory for the `objc_super` struct on every super call. ## Changes - **New `ObjCSuper` readonly ref struct** (`src/ObjCRuntime/ObjCSuper.cs`): A `[StructLayout(LayoutKind.Sequential)]` struct with `Receiver` and `ClassHandle` fields matching the native `objc_super` layout. - **Updated bgen code generation**: P/Invoke declarations for `objc_msgSendSuper` variants now take `ObjCSuper*` instead of `IntPtr` as the first parameter. Generated call sites create a stack-allocated `ObjCSuper` and pass `&__objc_super__` instead of `this.SuperHandle`. - **Updated handwritten super calls** in 11 source files (CIFilter, CIVector, CALayer, UIPasteboard, NSInputStream, NSUuid, NSThread, NSHttpCookie, GCMouse, NSOpenGLPixelFormat, NSBitmapImageRep) plus NSObject2.cs. - `NSObject.SuperHandle` is preserved for backward compatibility (can be simplified/removed in XAMCORE_5_0). Fixes #25362 🤖 Pull request created by Copilot --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
## Summary Line 22 of `docs/native-library-interop.md` contained a broken internal link pointing to `build-apps/build-items.md`. The directory `docs/build-apps/` does not exist in the repository; the correct path is `docs/building-apps/build-items.md`. ## Changes - Fixed the link target on line 22: `build-apps/build-items.md` → `building-apps/build-items.md` ## Verification - `docs/building-apps/build-items.md` exists in the repo ✅ - The corrected line reads `[build-items](building-apps/build-items.md)` ✅ --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…25442) Convert classic NUnit assertions to NUnit v4's constraint-based Assert.That syntax in the introspection test project. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…macios (#25441) All 11 numbered code reference links in `docs/bindas.md` (links [1]–[7], [9]–[12]) pointed to a personal fork (`rolfbjarne/xamarin-macios`) at a specific commit SHA. These links are not guaranteed to remain accessible. Link [8] (a PR link) was already correct. This PR updates all 11 links to use canonical `dotnet/macios` permalinks with the current main branch SHA (`18a22fd`), with corrected line numbers matching the current state of the codebase. ### Changes - **Base URL**: `rolfbjarne/xamarin-macios/blob/b38c114f…` → `dotnet/macios/blob/18a22fd0…` - **Links [11]/[12]**: path corrected from `src/generator.cs` → `src/bgen/Generator.cs` (file was renamed) - **All line numbers**: updated to match the current tree (e.g., `testgenerator.cs#L100` → `#L125`, `Registrar.cs#L687` → `#L794`) ### Verification All 11 updated URLs return HTTP 200. This is a documentation-only change with no code impact. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
) The DetectMetadata tests were flaky because the macOS pasteboard subsystem may not have fully analyzed content metadata by the time DetectMetadata is called immediately after SetStringForType. The callback would be invoked but return an empty dictionary. Fix by: - Adding retry logic (up to 5 attempts with 500ms delays) for the '#2' detection case where we expect results after writing content - Increasing WaitOne timeouts from 1s to 10s for CI under load Fixes #25446 --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
This pull request updates the following dependencies ## From https://github.com/dotnet/macios - **Subscription**: [c0371266-dd6f-4959-822b-decc72d2d668](https://maestro.dot.net/subscriptions?search=c0371266-dd6f-4959-822b-decc72d2d668) - **Build**: [20260518.1](https://dev.azure.com/devdiv/DevDiv/_build/results?buildId=14122183) ([314711](https://maestro.dot.net/channel/3884/github:dotnet:macios/build/314711)) - **Date Produced**: May 18, 2026 8:31:49 AM UTC - **Commit**: [7075bb3](7075bb3) - **Branch**: [release/9.0.1xx](https://github.com/dotnet/macios/tree/release/9.0.1xx) - **Dependency Updates**: - From [26.5.9001 to 26.5.9002][1] - Microsoft.iOS.Sdk.net9.0_26.5 - Microsoft.MacCatalyst.Sdk.net9.0_26.5 - Microsoft.macOS.Sdk.net9.0_26.5 - Microsoft.tvOS.Sdk.net9.0_26.5 [1]: 1e1deb8...7075bb3
* Add a 'StringUtils.IsNullOrEmpty' with proper nullability attributes, because the netstandard2.0 version doesn't have it. * Add a 'string.EndsWith(char)' overload. --------- Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
Useful when: * Building on Linux. * Building on older macOS versions, that can't install the required Xcode version. Refactor the existing IS_LINUX variable to use NO_XCODE instead.
#25452) Expand IgnoreInCIIfSshConnectionError to also detect 'A TLS error caused the secure connection to fail' messages and CFNetworkErrors.SecureConnectionFailed NSError codes by walking the entire exception chain. Add IgnoreInCIIfBadNetwork(ex) calls to tests that were only checking HTTP status codes but not exceptions: - GHIssue8342 - SupportsDigestAuthentication - GHIssue16339 - AcceptSslCertificatesServicePointManager Fixes #25444 --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
…atic registrars (#25434) * Fix an issue where the new style of generated block supporting code wasn't properly handled by the trimmer when using the dynamic registrar. * Add a 'link sdk' + 'link all' test variation for all platforms for monotouch-test. * Update a few tests to cope with the additional trimming variations for monotouch-test. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
The red checkmark should be enough, and this way we don't require write permissions to the pull request.
Update the following package versions: - NUnit: 4.4.0 → 4.6.1 - NUnit3TestAdapter: 6.1.0 → 6.2.0 - NUnitAnalyzers: 4.7.0 → 4.13.0 - NUnitXmlTestLogger: 3.1.15 → 8.0.0 - NUnitLite: 3.12.0 → 4.6.1 - NUnitV2ResultWriter: 3.6.0 → 3.8.0 Also remove the tools/nunit3-console* scripts, they're no longer needed. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fixes: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=14220252&view=logs&j=7052fe35-1431-500d-b066-a8f68f3e4472&t=3e86fd51-d381-52a3-1170-668b62fca50b&s=1d91d519-4060-54d4-b74e-0ef61a7f9d43 ``` GEN Microsoft.iOS.xml Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked For more information on this error code see https://www.sqlite.org/rescode.html'. at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db) at Microsoft.Data.Sqlite.SqliteConnection.BackupDatabase(SqliteConnection destination, String destinationName, String sourceName) at AppleDocReader.Database.MicrosoftDataSqlite.AdrMicrosoftDataSqliteConnection.BackupDatabase(AdrSqliteConnection destination, String destinationName, String sourceName, Int32 pages, Object ignored, Int32 retryMilliseconds) in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrSqliteConnection.cs:line 160 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.ResolveChildren() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 604 at AppleDocReader.Database.AdrDatabaseXcode14.Populate(Boolean populate) in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 201 at AppleDocReader.Database.AdrDatabaseXcode14.CreateFromXcode(String xcodePath, ValueTuple`2 version, String dbPath, HashSet`1 jsonSelectors) in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrDatabaseXcode14.cs:line 125 at AppleDocReader.Database.AdrFactory.GetDatabase(String xcodePath, String dbPath, HashSet`1 jsonSelectors) in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Database/AdrFactory.cs:line 21 at AppleDocReader.Commands.Inject.DocsCommand.InvokeInternal() in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Commands/Inject/DocsCommand.cs:line 36 at AppleDocReader.Commands.AdrCommand.Invoke(IEnumerable`1 arguments) in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Commands/AdrCommand.cs:line 61 at Mono.Options.CommandSet.Run(IEnumerable`1 arguments) at AppleDocReader.MainClass.Main2(String[] args) in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Main.cs:line 45 at AppleDocReader.MainClass.Main(String[] args) in /Users/builder/azdo/_work/3/s/src/AppleDocReader/Main.cs:line 17 make[1]: *** [build/dotnet/macos/doc/Microsoft.macOS.xml] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [all-recurse] Error 1 ``` AppleDocReader backs up a shared Xcode SQLite database while injecting docs into the generated platform XML files. When make builds the iOS, macOS, tvOS, and Mac Catalyst XML docs in parallel, multiple AppleDocReader processes can race on that database and fail with SQLite Error 5: database is locked. Run AppleDocReader under a shared lockf lock so the rest of the build can remain parallel while the database access is serialized.
Add a configure-time option for selecting the Xcode installation used by
the build.
Some build images install Xcode 26.5 as:
/Applications/Xcode_26.5.app
while the repository default points at:
/Applications/Xcode_26.5.0.app
Xcode does not behave well when accessed through symlinks, so make the
path explicit instead of requiring machines to provide an alternate app
bundle name.
The configure options accept either the Xcode app bundle path or the
developer root path:
./configure --xcode=/Applications/Xcode_26.5.app
./configure --xcode=/Applications/Xcode_26.5.app/Contents/Developer
./configure --xcode-root=/Applications/Xcode_26.5.app
./configure
--xcode-developer-root=/Applications/Xcode_26.5.app/Contents/Developer
Based on PR review feedback, `configure` now writes the selected path
directly to `configure.inc` as `XCODE_DEVELOPER_ROOT`. `Make.config`
includes `configure.inc` before resolving the Xcode block and uses `?=`
for the existing default path:
XCODE_DEVELOPER_ROOT?=/Applications/Xcode_26.5.0.app/Contents/Developer
This keeps the behavior simple and consistent with the other configure
options: an explicitly configured Xcode path wins, while the existing
`.0.app` path remains the default when no path is configured.
`system-dependencies.sh` now also checks `configure.inc` for
`XCODE_DEVELOPER_ROOT` before falling back to the `Make.config` default,
and direct invocations export `DEVELOPER_DIR` from the resolved Xcode
root so the script and Make agree on the selected Xcode.
No pipeline- or agent-specific logic is added. CI can opt into the
shorter app bundle name by running:
./configure --xcode=/Applications/Xcode_26.5.app
Local developers with `Xcode_26.5.0.app` can continue using the default
configuration unchanged.
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…25615) We're only executing on macOS, so long paths are fine.
#25577) Code Radiator failed to create the `main -> xcode26.5` merge PR because safe-outputs attempted signed commit replay, then refused unsigned fallback when a submodule update was present. This change switches the merge workflow to explicit unsigned push behavior for PR branch updates. - **Root cause addressed** - Configure safe-outputs PR write paths to avoid `pushSignedCommits` replay for merge branches that can include unsupported commit shapes (notably submodule bumps). - **Workflow source updates (`code-radiator.md`)** - Set `signed-commits: false` under: - `safe-outputs.create-pull-request` - `safe-outputs.push-to-pull-request-branch` - **Compiled workflow parity (`code-radiator.lock.yml`)** - Updated generated safe-outputs handler/config payloads to include: - `"signed_commits": false` for `create_pull_request` - `"signed_commits": false` for `push_to_pull_request_branch` ```yaml safe-outputs: create-pull-request: max: 10 signed-commits: false push-to-pull-request-branch: max: 10 signed-commits: false ``` --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
…25603) mono-api-info now reads NullableAttribute and NullableContextAttribute metadata from assemblies and appends '?' to type names for nullable reference types in the XML output (parameters, return types, properties, fields, and events). mono-api-html now: - Strips nullability annotations when matching methods (so nullability- only changes don't cause false removed/added entries) - Detects nullability-only changes and renders them under a separate '(nullability)' subsection header to indicate they are non-breaking - Handles the '?' suffix in type name resolution (GetTypeName) --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…a3594d11b8d56bf7d3dbce919e0688715d5ec to b6ed8ef7f3251d0b67ac2428c06253d0ba328e97 (#25639) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 5.2.0 to 5.3.0.
The remaining static state is mostly caching of environment variables (which won't change during a process' lifetime). This is necessary, because soon we'll include some of this code in MSBuild tasks, which shouldn't have static state.
…20260603055155830 to main (#25626) LEGO: Pull request from lego/hb_5df43909-4a19-4f55-bc3f-9ea8fccf3c82_20260603055155830 to main with localized lcls
`MtouchNoSymbolStrip` doesn't do anything on macOS, so use `NoSymbolStrip` instead.
Code Radiator failed when large merge PRs exceeded the default 1024 KB safe-output patch limit, causing PR creation to fall back to an issue. This updates the workflow to allow substantially larger generated patches. - **Workflow source** - Raise the top-level `safe-outputs.max-patch-size` in `code-radiator.md` from the default to `10240` KB. - **Compiled workflow** - Update the generated safe-output config in `code-radiator.lock.yml` so both PR creation and PR branch updates use the new `10240` KB limit. - **Result** - Large inter-branch merge patches can proceed through `create_pull_request` instead of being rejected by the safe-output size guard. ```yaml safe-outputs: max-patch-files: 1000 max-patch-size: 10240 ``` --------- Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
…workflow (#25602) The CI Post-Mortem workflow was failing on its weekly schedule because it requires authenticated Azure DevOps access that isn't available in the scheduled runner environment. Disabling the schedule so the workflow can only be triggered manually (`workflow_dispatch`). ## Changes - **`.github/workflows/ci-postmortem.md`** — removed the `schedule` trigger from the frontmatter `on:` block - **`.github/workflows/ci-postmortem.lock.yml`** — recompiled from updated source --------- Co-authored-by: rolfbjarne <249268+rolfbjarne@users.noreply.github.com>
…owserEngineCore classes. (#25629)
…the Xcode location. (#25628) These warnings are just noise for us at this point. Eventually we'll just stop using the deprecated locations. --------- Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
This is a macOS-only class. But keep obsolete APIs throwing PlatformNotSupportedException until XAMCORE_5_0. --------- Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
…5614) --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Move the CI build/test/API-diff flows to the ACES shared macOS pool while keeping PR validation on the existing PR pool for now. ## Scope This PR enables ACES for the CI entry points only: - `build-pipeline.yml` - `run-ci-api-diff.yml` - `run-post-ci-build-tests.yml` The PR entry points remain opt-out for now and can be flipped later once CI is stable: - `build-pull-request.yml` - `run-pr-api-diff.yml` - `run-post-pr-build-tests.yml` ## What changed - Added/used the `useACES` template parameter to route CI build, API diff, and simulator-test jobs to the ACES shared pool/image. - Kept the existing non-ACES pool and demand behavior when `useACES` is false. - Marked ACES simulator-test jobs with `VM_VENDOR=ACES` so tests that should not run on virtualized machines can opt out correctly. - Avoid deleting simulator runtimes on ACES, since that operation is not supported/reliable there. - Wait longer for non-x64 simulator cleanup to complete before continuing. - Skip x64 simulator test runs on ACES machines. - Use the Xcode selected by `xcode-select` for build configuration and pre-configure provisioning, so ACES agents with `/Applications/Xcode_26.5.app` do not require symlinks or the traditional `/Applications/Xcode_26.5.0.app` bundle name. - Harden the `System.Net.Http` monotouch tests against transient CI/httpbin network timeouts so network stalls do not hang the entire monotouch app until the harness timeout. ## Related Xcode path support This branch includes the configure support from #25622. The CI templates use the selected Xcode developer root so both classic bots and ACES images can configure/build with the Xcode that is actually installed on the agent. ## Validation notes The original green build links in this PR description became stale as the branch evolved. Recent follow-up failures were investigated and resulted in the Xcode selection and network-timeout fixes included here. The intended validation matrix is: - CI Build on ACES - CI API diff on ACES - Post-CI simulator tests on ACES - PR pipelines still using the existing PR pool --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Replace all Thread.Join() calls (no timeout) with Thread.Join(TimeSpan) + Assert.That to fail the test if the thread doesn't complete within a reasonable time. Timeouts are chosen based on the work each thread does: - 5s for simple/fast operations (object creation, property checks) - 10s for I/O or RunLoop-based threads (timers, network listeners) - 30s for heavy workloads (10k iterations, GPU image processing) --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…atform] attribute. (#25632) They're only present to keep binary compatibility, we already figured out they shouldn't be in the API (thus the `[UnsupportedOSPlatform]` attribute), so no need to report it. --------- Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Author
There was a problem hiding this comment.
Protected files were modified in this pull request and require manual scrutiny before merge.
Please verify that each protected-file change is intentional, policy-compliant, and safe:
- Protected files:
global.json,README.md,.github/workflows/bump-global-json.yml
Contributor
Author
|
⏭️ Skipping merge update: this PR is a draft. Convert to ready when you want automated updates to resume.
|
Contributor
Author
|
⏭️ Skipping merge update: this PR is a draft. Convert to ready when you want automated updates to resume.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Caution
Protected files were modified in this change.
This pull request is in
request_reviewmode and requires explicit human scrutiny before merge.Protected files:
global.json,README.md,.github/workflows/bump-global-json.ymlAutomated merge of
mainintoxcode26.6.Created by the code-radiator workflow.
Merge Details
This merge had conflicts that were resolved as follows:
Expected test output files (tests/dotnet/UnitTests/expected/*)
NuGet.config
Other files requiring manual resolution
The PR is marked with
do-not-mergelabel and requires human review before merging.